package w83b.w83bOperacionesPaso.w83bMantenimientos.w83bDelegados;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import w83b.w83bBeans.W83bMantenimientoDelegadosBean;
import w83b.w83bBeans.W83bUsuarioXLNetsBean;
import w83b.w83bUtilidades.W83bUtilidadesComunes;
import w83b.w83bUtilidadesComunes.W83bClsConstantes;
import w83b.w83bUtilidadesComunes.W83bUtilidadesN38API;
import es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP;
import es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE;

public class W83bTablaDelegadosOPAction extends Q70ActionPasoOP{

	protected void processOP(Q70ContextoEJIE contexto, ActionErrors errores,
			ActionMapping mapping, ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws Exception {

		//Guardamos la accion en el contexto
		contexto.set("action",request.getParameter("action"));

		W83bMantenimientoDelegadosBean delBean = (W83bMantenimientoDelegadosBean)contexto.get("w83bMantenimientoDelegadosBean");
		if((StringUtils.isEmpty((String)contexto.get("modoPantalla"))
				||W83bClsConstantes.MODO_BUSQUEDA.equals(contexto.get("modoPantalla")))){
			if("true".equals(request.getParameter(W83bClsConstantes.RIA_SEARCH))){
				contexto.set("w83bMantenimientoDelegadosBean",null);
				delBean = new W83bMantenimientoDelegadosBean();
				delBean.setDniDelegado(request.getParameter("w83bMantenimientoDelegadosBean.dniDelegado").toUpperCase());
				W83bUsuarioXLNetsBean usuario = (W83bUsuarioXLNetsBean)contexto.get(W83bClsConstantes.CONSTANTE_CONTEXTO_USUARIO);
				String provinciaUsuario = W83bUtilidadesN38API.elegirProvinciaDelegacion(usuario.getPerfilXLNets());
		        delBean.setUsuarioBean(usuario);
				if(W83bClsConstantes.CONSTANTE_SERVICIOS_CENTRALES.equals(provinciaUsuario)){
					delBean.setIdProvincia(request.getParameter("w83bMantenimientoDelegadosBean.idProvincia"));
		        }else if(W83bClsConstantes.CONSTANTE_ALAVA.equals(provinciaUsuario)){
		        	delBean.setIdProvincia(W83bClsConstantes.CONSTANTE_ALAVA);
		        }else if(W83bClsConstantes.CONSTANTE_BIZKAIA.equals(provinciaUsuario)){
		        	delBean.setIdProvincia(W83bClsConstantes.CONSTANTE_BIZKAIA);
		        }else if(W83bClsConstantes.CONSTANTE_GIPUZKOA.equals(provinciaUsuario)){
		        	delBean.setIdProvincia(W83bClsConstantes.CONSTANTE_GIPUZKOA);
		        }
				delBean.setDescProvincia(request.getParameter("w83bMantenimientoDelegadosBean.descProvincia"));
				delBean.setIdMunicipio(request.getParameter("w83bMantenimientoDelegadosBean.idMunicipio"));
				delBean.setDescMunicipio(request.getParameter("w83bMantenimientoDelegadosBean.descMunicipio"));
				delBean.setNombreDelegado(request.getParameter("w83bMantenimientoDelegadosBean.nombreDelegado").toUpperCase());
				delBean.setPrimerApellidoDelegado(request.getParameter("w83bMantenimientoDelegadosBean.primerApellidoDelegado").toUpperCase());
				delBean.setSegundoApellidoDelegado(request.getParameter("w83bMantenimientoDelegadosBean.segundoApellidoDelegado").toUpperCase());
				delBean.setCodBaja(request.getParameter("w83bMantenimientoDelegadosBean.codBaja"));
					if(StringUtils.isNotEmpty(delBean.getCodBaja())){
						if((W83bClsConstantes.DOS+"").equalsIgnoreCase(delBean.getCodBaja())){
							delBean.setFechaBajaDesde(request.getParameter("w83bMantenimientoDelegadosBean.fechaBajaDesde"));
							delBean.setFechaBajaHasta(request.getParameter("w83bMantenimientoDelegadosBean.fechaBajaHasta"));
						}else if((W83bClsConstantes.UNO+"").equalsIgnoreCase(delBean.getCodBaja())){
							delBean.setFechaBajaDesde("");
							delBean.setFechaBajaHasta("");
						}else{
							delBean.setFechaBajaDesde("");
							delBean.setFechaBajaHasta("");
						}
					}
				delBean = (W83bMantenimientoDelegadosBean)W83bUtilidadesComunes.inicializarPaginador(request, delBean);
				delBean.setPage("1");
				contexto.set("w83bMantenimientoDelegadosBean",delBean);
			}else{
				W83bUsuarioXLNetsBean usuario = (W83bUsuarioXLNetsBean)contexto.get(W83bClsConstantes.CONSTANTE_CONTEXTO_USUARIO);
				//Antonio 08/05/2013
				String provinciaUsuario = W83bUtilidadesN38API.elegirProvinciaDelegacion(usuario.getPerfilXLNets());
				//Fin Antonio
		        delBean.setUsuarioBean(usuario);
		        //Antonio 08/05/2013
		        
		        if("false".equals(contexto.get("busqRealizada"))){
					if(W83bClsConstantes.CONSTANTE_SERVICIOS_CENTRALES.equals(provinciaUsuario)){
						delBean.setIdProvincia(W83bClsConstantes.CONSTANTE_ALAVA);
						delBean.setIdMunicipio(W83bClsConstantes.CONSTANTE_VITORIA);
			        }else if(W83bClsConstantes.CONSTANTE_ALAVA.equals(provinciaUsuario)){
			        	delBean.setIdProvincia(W83bClsConstantes.CONSTANTE_ALAVA);
			        	delBean.setIdMunicipio(W83bClsConstantes.CONSTANTE_VITORIA);
			        }else if(W83bClsConstantes.CONSTANTE_BIZKAIA.equals(provinciaUsuario)){
			        	delBean.setIdProvincia(W83bClsConstantes.CONSTANTE_BIZKAIA);
			        	delBean.setIdMunicipio(W83bClsConstantes.CONSTANTE_BILBAO);
			        }else if(W83bClsConstantes.CONSTANTE_GIPUZKOA.equals(provinciaUsuario)){
			        	delBean.setIdProvincia(W83bClsConstantes.CONSTANTE_GIPUZKOA);
			        	delBean.setIdMunicipio(W83bClsConstantes.CONSTANTE_DONOSTIA);
			        }
		        }
				//Fin Antonio
				delBean = (W83bMantenimientoDelegadosBean)W83bUtilidadesComunes.inicializarPaginador(request, delBean);
				contexto.set("w83bMantenimientoDelegadosBean",delBean);
			}
		}else if("sord".equals(request.getParameter("action"))){
			delBean = (W83bMantenimientoDelegadosBean)W83bUtilidadesComunes.inicializarPaginador(request, delBean);
			contexto.set("w83bMantenimientoDelegadosBean",delBean);
		}else if(StringUtils.isEmpty(((W83bMantenimientoDelegadosBean)contexto.get("w83bMantenimientoDelegadosBean")).getSort())){
			delBean = (W83bMantenimientoDelegadosBean)W83bUtilidadesComunes.inicializarPaginador(request, delBean);
			contexto.set("w83bMantenimientoDelegadosBean",delBean);
		}

	}


	protected ActionForward processForward(Q70ContextoEJIE contexto,
			ActionErrors errores, ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) throws Exception {

		String action = (String)contexto.get("action");

		W83bMantenimientoDelegadosBean delBean = (W83bMantenimientoDelegadosBean)contexto.get("w83bMantenimientoDelegadosBean");

		delBean.setIdioma((String)contexto.get(W83bClsConstantes.CONSTANTE_CONTEXTO_IDIOMA));

		contexto.set("w83bMantenimientoDelegadosBean", delBean);

		if(null==(ArrayList)contexto.get("w83bListaDelegados")){
			contexto.set("w83bListaDelegados", new ArrayList());
		}
		if ("find".equals(action)||"sord".equals(action)){
			if(StringUtils.isEmpty((String)contexto.get("modoPantalla"))
					||W83bClsConstantes.MODO_BUSQUEDA.equals(contexto.get("modoPantalla"))){
				return mapping.findForward("find");
			}else{
				contexto.set("modoPantalla",W83bClsConstantes.MODO_BUSQUEDA);
				if("delegados".equals((String)contexto.get("subOpFlag"))){
					contexto.set("migas","inicio.mantenimiento.delegados");
				}
				if("true".equals((String)contexto.get("busqRealizada"))){
					return mapping.findForward("find");
				}
			}
		}

		return mapping.findForward("ok");
	}


	
}
